<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组的方法</title>
</head>
<body>

    <script>
        // arr=["kobe","james","curry"];
        // var newArry = arr.slice(1,2);
        // for(var i = 0;i<newArry.length;i++)
        // {
        //     console.log(newArry[i]);
        // }

        // var arr1 = [1,2,3];
        // var arr2 = [4,5,6];
        // var arr3 = [7,8,9];
        // var arr4 = arr1.concat(arr2,arr3);

        // //1,使用for循环
        // var arr5 = [];
        // function concat (arr)
        // {
        //     for(item of arr)
        //     { 
        //        arr5.push(item);
        //     }  
        // }
        // concat(arr1);
        // concat(arr2);
        // concat(arr3);
        // console.log(arr4);
        // console.log(arr5);
       
        // //数组的遍历方式
        // //1,for循环遍历方式
        // for(var i = 0;i<arr5.length;i++)
        // { 
        //     console.log(arr5[i]);
        // }
        // //使用for of
        // for (item of arr5)
        // {
        //     console.log(item);
        // }
        // //使用for in
        // for(key in arr5)
        // {
        //     console.log(arr5[key]);
        // }
        // //使用forEach
        // arr5.forEach(function(item,index,arr){console.log(item,index,arr)});
        
        //第一版
        var arr1 = [1,2,3,4,5,6,7,8,9,10];
        // function My_forEach(fn)
        // {
        //    fn(arr1);
        // }
        // function fn (arr)
        // {
        //     for(var i =0;i<arr.length;i++)
        //     {
        //         console.log(arr[i]);
        //     }
        // }
        // My_forEach(fn);

        // //第二版
        // arr1.My_forEach = function(fn)
        // {
        //     for(var i = 0;i<this.length;i++)
        //     {
        //         fn(this[i],i,this);
        //     }
        // }
        // arr1.My_forEach(function(item,index,arr){console.log(item,index,arr)});

    //    //第三版
    //    Array.prototype.My_forEach = function(fn)
    //    {
    //       for(var i = 0;i<this.length;i++)
    //       {
    //          fn(this[i],i,this);
    //       }
    //    }

    //   arr1.My_forEach(function(item,index,arr){console.log(item,index,arr)});

      

    //   var arr = [1,2,4,5,6];
    //   arr.find(function (item){ if(item === 1){console.log(item)}});
      
    //   var arr2 = [1,5,6,4,7,3,8,9];
    //   arr2.sort(function(item1,item2){return item1-item2});
    //   console.log(arr2);
    //   arr2.sort(function(item1,item2){return item2-item1});  
    //   console.log(arr2);  

    //   arr2.reverse();
    //   console.log(arr2);
    
      //filter+map+reduce函数链式调用
      var arr2 = [1,2,3,4,5,6,7,8,9,10];
      var arr3 = arr2.filter(function(item)
      {return item%2 ===0}).map(function(item){return item*item})
      .reduce(function(preval,item){return preval+item},0);
      
      console.log(arr3);


    </script>
    
</body>
</html>